﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using vudu.Logica.Clases;
using vudu.Logica.Excepciones;
using vudu.EnlaceDatos.SqlServer;
using System.Data;

namespace vudu.PaginasWeb.G5Materia
{
    public partial class ConsultarSeccionMateria : System.Web.UI.Page
    {
        private Materia materia;
        private Profesor profesor;
        String consulta;
        List<SeccionMateria> lista = new List<SeccionMateria>();
        String codigo;

        protected void Page_Load(object sender, EventArgs e)
        {
            //OBJETO SESSION 
            string miRol = (string)Session["rol"];
            if (miRol != "Escuela")
                Response.Redirect("../G3AccesoSistema/InicioSistema.aspx");
            Escuela esc = (Escuela)Session["Usuario"];
            nombreEscuela.Text = "Escuela: " + esc.NombreEscuela;
            
            MigaActual.Text = "Consultar Secciones";
            String url = Request.Url.PathAndQuery;
            String[] s = url.Split('=');
            consulta = s[1];
            if (s.Length > 2)
                codigo = s[3];
            try
            {
                if (consulta.Contains("1"))
                {
                    materia = new Materia();
                    materia.Nombre = codigo.Replace("%20", " ");
                    LabelMateriaProfesor.Text = "Materia: " + materia.Nombre;
                    lista = new SqlServerSeccionMateria().ConsultarSeccionesDeUnaMateria(materia);
                    if (lista == null)
                    {
                        Label6.Text = "No existen secciones para esta materia";
                        Label6.CssClass = "transaccionFallida";
                        Label6.ForeColor = System.Drawing.Color.Red;
                        Label6.Visible = true;
                    }
                    else
                        cargarTabla(1);
                }
                else if (consulta.Contains("2"))
                {
                    profesor = new Profesor();
                    profesor.Cedula = Int32.Parse(codigo);
                    profesor = new SqlServerProfesor().ConsultarProfesor(profesor.Cedula.ToString(),2);
                    LabelMateriaProfesor.Text = "Profesor: " + profesor.Nombre + " " + profesor.Apellido;
                    lista = new SqlServerSeccionMateria().ConsultarSeccionesDeUnProfesor(profesor);
                    if (lista == null)
                    {
                        Label6.Text = "No existen secciones para este profesor";
                        Label6.CssClass = "transaccionFallida";
                        Label6.ForeColor = System.Drawing.Color.Red;
                        Label6.Visible = true;
                    }
                    else
                        cargarTabla(2);
                }

            }
            catch (Exception)
            {
                Label6.Text = "Ocurrio un error en la transaccion";
            }
        }

        public void cargarTabla(int c)
        {
            DataTable table = new DataTable();
            if (c == 1)
            {
                table.Columns.Add("Seccion", typeof(string));
                table.Columns.Add("Profesor", typeof(string));
                foreach (SeccionMateria seccion in lista)
                {
                    table.Rows.Add(seccion.Codigo.ToString(), seccion.Profesor.Nombre + " " + seccion.Profesor.Apellido);
                }
            }
            else
            {
                table.Columns.Add("Seccion", typeof(string));
                table.Columns.Add("Materia", typeof(string));
                foreach (SeccionMateria seccion in lista)
                {
                    String nombreMateria = seccion.Materia.Nombre;
                    if (nombreMateria != null)
                    {
                        table.Rows.Add(seccion.Codigo.ToString(), nombreMateria);
                    }
                }
            }
            GridView1.DataSource = table;
            GridView1.DataBind();
        }

        protected void BotonRegresar_Click(object sender, EventArgs e)
        {
            Response.Redirect("ConsultarSeccionPrincipal.aspx");
        }

        protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            GridView1.PageIndex = e.NewPageIndex;
            if (consulta.Contains("1"))
                cargarTabla(1);
            else
                cargarTabla(2);
        }
    }
}